// $ANTLR 3.2 Sep 23, 2009 12:02:23 C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g 2010-01-28 23:44:46

package com.area42games.grammar;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class DiceLexer extends Lexer {
    public static final int D=10;
    public static final int RBRACE=19;
    public static final int QUALIFIER=23;
    public static final int LETTER=31;
    public static final int LBRACE=18;
    public static final int NUMBER=21;
    public static final int HASH=20;
    public static final int WHITESPACE=32;
    public static final int COMP=22;
    public static final int MINUS=7;
    public static final int MULT=8;
    public static final int EOF=-1;
    public static final int LOW=25;
    public static final int SEMI=4;
    public static final int ROLLAGAIN=27;
    public static final int LPAREN=16;
    public static final int COLON=15;
    public static final int RPAREN=17;
    public static final int QUESTION=12;
    public static final int COMMA=14;
    public static final int HIGH=24;
    public static final int IDENTIFIER=28;
    public static final int PLUS=6;
    public static final int EACH=5;
    public static final int DIGIT=30;
    public static final int CD=11;
    public static final int DIV=9;
    public static final int EQ=29;
    public static final int DOT=13;
    public static final int REROLL=26;

    // delegates
    // delegators

    public DiceLexer() {;} 
    public DiceLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public DiceLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g"; }

    // $ANTLR start "SEMI"
    public final void mSEMI() throws RecognitionException {
        try {
            int _type = SEMI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:7:6: ( ';' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:7:8: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SEMI"

    // $ANTLR start "EACH"
    public final void mEACH() throws RecognitionException {
        try {
            int _type = EACH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:8:6: ( '@' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:8:8: '@'
            {
            match('@'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EACH"

    // $ANTLR start "PLUS"
    public final void mPLUS() throws RecognitionException {
        try {
            int _type = PLUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:9:6: ( '+' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:9:8: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PLUS"

    // $ANTLR start "MINUS"
    public final void mMINUS() throws RecognitionException {
        try {
            int _type = MINUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:10:7: ( '-' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:10:9: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "MULT"
    public final void mMULT() throws RecognitionException {
        try {
            int _type = MULT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:11:6: ( '*' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:11:8: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MULT"

    // $ANTLR start "DIV"
    public final void mDIV() throws RecognitionException {
        try {
            int _type = DIV;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:12:5: ( '/' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:12:7: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIV"

    // $ANTLR start "D"
    public final void mD() throws RecognitionException {
        try {
            int _type = D;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:13:3: ( 'd' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:13:5: 'd'
            {
            match('d'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "D"

    // $ANTLR start "CD"
    public final void mCD() throws RecognitionException {
        try {
            int _type = CD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:14:4: ( 'D' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:14:6: 'D'
            {
            match('D'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CD"

    // $ANTLR start "QUESTION"
    public final void mQUESTION() throws RecognitionException {
        try {
            int _type = QUESTION;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:15:10: ( '?' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:15:12: '?'
            {
            match('?'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "QUESTION"

    // $ANTLR start "DOT"
    public final void mDOT() throws RecognitionException {
        try {
            int _type = DOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:16:5: ( '.' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:16:7: '.'
            {
            match('.'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOT"

    // $ANTLR start "COMMA"
    public final void mCOMMA() throws RecognitionException {
        try {
            int _type = COMMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:17:7: ( ',' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:17:9: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMA"

    // $ANTLR start "COLON"
    public final void mCOLON() throws RecognitionException {
        try {
            int _type = COLON;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:18:7: ( ':' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:18:9: ':'
            {
            match(':'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COLON"

    // $ANTLR start "LPAREN"
    public final void mLPAREN() throws RecognitionException {
        try {
            int _type = LPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:19:8: ( '(' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:19:10: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LPAREN"

    // $ANTLR start "RPAREN"
    public final void mRPAREN() throws RecognitionException {
        try {
            int _type = RPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:20:8: ( ')' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:20:10: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RPAREN"

    // $ANTLR start "LBRACE"
    public final void mLBRACE() throws RecognitionException {
        try {
            int _type = LBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:21:8: ( '{' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:21:10: '{'
            {
            match('{'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LBRACE"

    // $ANTLR start "RBRACE"
    public final void mRBRACE() throws RecognitionException {
        try {
            int _type = RBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:22:8: ( '}' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:22:10: '}'
            {
            match('}'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RBRACE"

    // $ANTLR start "HASH"
    public final void mHASH() throws RecognitionException {
        try {
            int _type = HASH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:23:6: ( '#' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:23:8: '#'
            {
            match('#'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "HASH"

    // $ANTLR start "EQ"
    public final void mEQ() throws RecognitionException {
        try {
            int _type = EQ;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:101:4: ( '=' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:101:6: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EQ"

    // $ANTLR start "COMP"
    public final void mCOMP() throws RecognitionException {
        try {
            int _type = COMP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:7: ( '<' | '>' | '==' | '<=' | '>=' )
            int alt1=5;
            switch ( input.LA(1) ) {
            case '<':
                {
                int LA1_1 = input.LA(2);

                if ( (LA1_1=='=') ) {
                    alt1=4;
                }
                else {
                    alt1=1;}
                }
                break;
            case '>':
                {
                int LA1_2 = input.LA(2);

                if ( (LA1_2=='=') ) {
                    alt1=5;
                }
                else {
                    alt1=2;}
                }
                break;
            case '=':
                {
                alt1=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:9: '<'
                    {
                    match('<'); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:15: '>'
                    {
                    match('>'); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:21: '=='
                    {
                    match("=="); 


                    }
                    break;
                case 4 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:28: '<='
                    {
                    match("<="); 


                    }
                    break;
                case 5 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:103:35: '>='
                    {
                    match(">="); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMP"

    // $ANTLR start "NUMBER"
    public final void mNUMBER() throws RecognitionException {
        try {
            int _type = NUMBER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:105:8: ( ( DIGIT )+ )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:105:10: ( DIGIT )+
            {
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:105:10: ( DIGIT )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:105:11: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUMBER"

    // $ANTLR start "QUALIFIER"
    public final void mQUALIFIER() throws RecognitionException {
        try {
            int _type = QUALIFIER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:107:11: ( '[' ( LETTER | DIGIT )+ ']' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:107:13: '[' ( LETTER | DIGIT )+ ']'
            {
            match('['); 
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:107:17: ( LETTER | DIGIT )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='Z')||(LA3_0>='a' && LA3_0<='z')) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);

            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "QUALIFIER"

    // $ANTLR start "IDENTIFIER"
    public final void mIDENTIFIER() throws RecognitionException {
        try {
            int _type = IDENTIFIER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:109:12: ( '$' ( '!' )? ( LETTER | DIGIT )+ )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:109:14: '$' ( '!' )? ( LETTER | DIGIT )+
            {
            match('$'); 
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:109:18: ( '!' )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0=='!') ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:109:18: '!'
                    {
                    match('!'); 

                    }
                    break;

            }

            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:109:23: ( LETTER | DIGIT )+
            int cnt5=0;
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='Z')||(LA5_0>='a' && LA5_0<='z')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt5 >= 1 ) break loop5;
                        EarlyExitException eee =
                            new EarlyExitException(5, input);
                        throw eee;
                }
                cnt5++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IDENTIFIER"

    // $ANTLR start "HIGH"
    public final void mHIGH() throws RecognitionException {
        try {
            int _type = HIGH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:111:6: ( 'high' | 'hi' )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='h') ) {
                int LA6_1 = input.LA(2);

                if ( (LA6_1=='i') ) {
                    int LA6_2 = input.LA(3);

                    if ( (LA6_2=='g') ) {
                        alt6=1;
                    }
                    else {
                        alt6=2;}
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:111:8: 'high'
                    {
                    match("high"); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:111:17: 'hi'
                    {
                    match("hi"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "HIGH"

    // $ANTLR start "LOW"
    public final void mLOW() throws RecognitionException {
        try {
            int _type = LOW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:113:5: ( 'low' | 'lo' )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0=='l') ) {
                int LA7_1 = input.LA(2);

                if ( (LA7_1=='o') ) {
                    int LA7_2 = input.LA(3);

                    if ( (LA7_2=='w') ) {
                        alt7=1;
                    }
                    else {
                        alt7=2;}
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 7, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:113:7: 'low'
                    {
                    match("low"); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:113:15: 'lo'
                    {
                    match("lo"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LOW"

    // $ANTLR start "REROLL"
    public final void mREROLL() throws RecognitionException {
        try {
            int _type = REROLL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:115:8: ( 'reroll' | 're' )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0=='r') ) {
                int LA8_1 = input.LA(2);

                if ( (LA8_1=='e') ) {
                    int LA8_2 = input.LA(3);

                    if ( (LA8_2=='r') ) {
                        alt8=1;
                    }
                    else {
                        alt8=2;}
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 8, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:115:10: 'reroll'
                    {
                    match("reroll"); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:115:21: 're'
                    {
                    match("re"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "REROLL"

    // $ANTLR start "ROLLAGAIN"
    public final void mROLLAGAIN() throws RecognitionException {
        try {
            int _type = ROLLAGAIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:117:11: ( 'rollagain' | 'ra' )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0=='r') ) {
                int LA9_1 = input.LA(2);

                if ( (LA9_1=='o') ) {
                    alt9=1;
                }
                else if ( (LA9_1=='a') ) {
                    alt9=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 9, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:117:13: 'rollagain'
                    {
                    match("rollagain"); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:117:27: 'ra'
                    {
                    match("ra"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ROLLAGAIN"

    // $ANTLR start "WHITESPACE"
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:119:12: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:119:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            {
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:119:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            int cnt10=0;
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( ((LA10_0>='\t' && LA10_0<='\n')||(LA10_0>='\f' && LA10_0<='\r')||LA10_0==' ') ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt10 >= 1 ) break loop10;
                        EarlyExitException eee =
                            new EarlyExitException(10, input);
                        throw eee;
                }
                cnt10++;
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "DIGIT"
    public final void mDIGIT() throws RecognitionException {
        try {
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:121:16: ( '0' .. '9' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:121:18: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "DIGIT"

    // $ANTLR start "LETTER"
    public final void mLETTER() throws RecognitionException {
        try {
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:122:17: ( 'a' .. 'z' | 'A' .. 'Z' )
            // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:
            {
            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "LETTER"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:8: ( SEMI | EACH | PLUS | MINUS | MULT | DIV | D | CD | QUESTION | DOT | COMMA | COLON | LPAREN | RPAREN | LBRACE | RBRACE | HASH | EQ | COMP | NUMBER | QUALIFIER | IDENTIFIER | HIGH | LOW | REROLL | ROLLAGAIN | WHITESPACE )
        int alt11=27;
        alt11 = dfa11.predict(input);
        switch (alt11) {
            case 1 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:10: SEMI
                {
                mSEMI(); 

                }
                break;
            case 2 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:15: EACH
                {
                mEACH(); 

                }
                break;
            case 3 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:20: PLUS
                {
                mPLUS(); 

                }
                break;
            case 4 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:25: MINUS
                {
                mMINUS(); 

                }
                break;
            case 5 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:31: MULT
                {
                mMULT(); 

                }
                break;
            case 6 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:36: DIV
                {
                mDIV(); 

                }
                break;
            case 7 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:40: D
                {
                mD(); 

                }
                break;
            case 8 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:42: CD
                {
                mCD(); 

                }
                break;
            case 9 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:45: QUESTION
                {
                mQUESTION(); 

                }
                break;
            case 10 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:54: DOT
                {
                mDOT(); 

                }
                break;
            case 11 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:58: COMMA
                {
                mCOMMA(); 

                }
                break;
            case 12 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:64: COLON
                {
                mCOLON(); 

                }
                break;
            case 13 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:70: LPAREN
                {
                mLPAREN(); 

                }
                break;
            case 14 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:77: RPAREN
                {
                mRPAREN(); 

                }
                break;
            case 15 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:84: LBRACE
                {
                mLBRACE(); 

                }
                break;
            case 16 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:91: RBRACE
                {
                mRBRACE(); 

                }
                break;
            case 17 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:98: HASH
                {
                mHASH(); 

                }
                break;
            case 18 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:103: EQ
                {
                mEQ(); 

                }
                break;
            case 19 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:106: COMP
                {
                mCOMP(); 

                }
                break;
            case 20 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:111: NUMBER
                {
                mNUMBER(); 

                }
                break;
            case 21 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:118: QUALIFIER
                {
                mQUALIFIER(); 

                }
                break;
            case 22 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:128: IDENTIFIER
                {
                mIDENTIFIER(); 

                }
                break;
            case 23 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:139: HIGH
                {
                mHIGH(); 

                }
                break;
            case 24 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:144: LOW
                {
                mLOW(); 

                }
                break;
            case 25 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:148: REROLL
                {
                mREROLL(); 

                }
                break;
            case 26 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:155: ROLLAGAIN
                {
                mROLLAGAIN(); 

                }
                break;
            case 27 :
                // C:\\Users\\Joe\\workspace\\eclipse\\area42dice\\grammar\\Dice.g:1:165: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;

        }

    }


    protected DFA11 dfa11 = new DFA11(this);
    static final String DFA11_eotS =
        "\22\uffff\1\33\13\uffff";
    static final String DFA11_eofS =
        "\36\uffff";
    static final String DFA11_minS =
        "\1\11\21\uffff\1\75\6\uffff\1\141\4\uffff";
    static final String DFA11_maxS =
        "\1\175\21\uffff\1\75\6\uffff\1\157\4\uffff";
    static final String DFA11_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+
        "\15\1\16\1\17\1\20\1\21\1\uffff\1\23\1\24\1\25\1\26\1\27\1\30\1"+
        "\uffff\1\33\1\22\1\31\1\32";
    static final String DFA11_specialS =
        "\36\uffff}>";
    static final String[] DFA11_transitionS = {
            "\2\32\1\uffff\2\32\22\uffff\1\32\2\uffff\1\21\1\26\3\uffff"+
            "\1\15\1\16\1\5\1\3\1\13\1\4\1\12\1\6\12\24\1\14\1\1\1\23\1\22"+
            "\1\23\1\11\1\2\3\uffff\1\10\26\uffff\1\25\10\uffff\1\7\3\uffff"+
            "\1\27\3\uffff\1\30\5\uffff\1\31\10\uffff\1\17\1\uffff\1\20",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\23",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\35\3\uffff\1\34\11\uffff\1\35",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
    static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
    static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
    static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
    static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
    static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
    static final short[][] DFA11_transition;

    static {
        int numStates = DFA11_transitionS.length;
        DFA11_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
        }
    }

    class DFA11 extends DFA {

        public DFA11(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 11;
            this.eot = DFA11_eot;
            this.eof = DFA11_eof;
            this.min = DFA11_min;
            this.max = DFA11_max;
            this.accept = DFA11_accept;
            this.special = DFA11_special;
            this.transition = DFA11_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( SEMI | EACH | PLUS | MINUS | MULT | DIV | D | CD | QUESTION | DOT | COMMA | COLON | LPAREN | RPAREN | LBRACE | RBRACE | HASH | EQ | COMP | NUMBER | QUALIFIER | IDENTIFIER | HIGH | LOW | REROLL | ROLLAGAIN | WHITESPACE );";
        }
    }
 

}